В продолжение своей предыдущей статьи о строках (напоминаю, это была текстовая версия доклада на конференции JPoint-2020) решил дописать ещё одну заметку со строковыми оптимизациями, обнаруженными уже после вёрстки презентации (первые две есть на видео в самом конце, показывал их прямо из «Идеи»).
Снова StringBuilder.append(char)
На сцене снова «Спринг», а именно o.s.u.StringUtils.deleteAny(String, String)
:
// org.springframework.util.StringUtils public static String deleteAny(String inString, String charsToDelete) { if (!hasLength(inString) || !hasLength(charsToDelete)) { return inString; } StringBuilder sb = new StringBuilder(inString.length()); for (int i = 0; i < inString.length(); i++) { char c = inString.charAt(i); if (charsToDelete.indexOf(c) == -1) { sb.append(c); } } return sb.toString(); }
В разделе «Склейка: если всё-таки нужно» рассматривая StringBuilder.append(char)
я отметил невозможность оптимизации